Various forms of network-based storage systems exist today. These forms include network attached storage (NAS), storage area networks (SAN's), and others. Network-based storage systems are commonly used for a variety purposes, such as providing multiple users with access to shared data, backing up critical data (e.g., by data mirroring), etc.
A network-based storage system typically includes at least one storage server, which is a processing system configured to store and retrieve data on behalf of one or more client processing systems (clients). The data is stored and retrieved as storage objects, such as blocks and/or files. A block is a sequence of bytes or bits of data having a predetermined length. A data container (for example, a file) is a collection of related bytes or bits having an arbitrary length. In the context of NAS, a storage server operates on behalf of one or more clients to store and manage file-level access to data. The files may be stored in a storage system that includes one or more arrays of mass storage devices, such as magnetic or optical disks or tapes, by using a data storage scheme such as Redundant Array of Inexpensive Disks (RAID). In a SAN context, a storage server provides clients with block-level access to stored data, rather than file-level access.
Conventional systems typically use a multi-tiered, tree-like structure that includes a virtual volume block number (VVBN) space and a physical volume block number (PVBN) space managing information at storage devices and processing input/output requests. The block size used by the storage system and by other entities (for example, virtual machines) may be different. This may result in misalignment and hence may complicate operations involving cloning and use of compression in storing data containers.
One option for handling the misalignment is to use an extent based architecture where an extent is a contiguous blocks used for storing a data container (for example, a file, directory and others) and is identified by an extent identifier. Continuous efforts are being made to use an extent based solution for efficiently perform cloning operations without having to use conventional VVBNs.